WIP: Polymorphic "this" for static members #29484
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is a work in progress to solicit feedback on the proposed solution, please do not merge or use this branch.
This commit attempts to make progress towards #5863. It is not a comprehensive solution, but it does provide a way for a library writer to 'opt-in' and provide an interface with a static polymorphic this.
One of the difficulties with #5863, is how to make it clear which
thisthethistype refers to, and the issue of the static and instance type mixing in the same declaration block.This sidesteps those issues, by only providing a static polymorphic this when using an interface in the extends position. This makes the meaning of
thisvery clear and it's explicit which side thethistype falls on; there is no mixing.i.e:
WIP
The PR is not finished. There are a few situations that need to be resolved and tests need to be written if it's decided that this is an acceptable solution.
(Potentially) fixes #5863